package git.soulbgm.pojo;

import cn.afterturn.easypoi.excel.annotation.Excel;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.SqlCondition;
import com.baomidou.mybatisplus.annotation.TableField;

import java.util.Date;

/**
 * 服务信息表
 *
 * @author SoulBGM
 * @date 2020-11-18 10:03:05
 */
public class ServiceInfo {

    /**
     * ID
     */
    private Long id;

    /**
     * 服务编号
     */
    @Excel(name = "服务编号", type = 10)
    private Integer serviceCode;

    /**
     * 节点/设备编号
     */
    @Excel(name = "主机编号", type = 10)
    private Integer nodeCode;

    /**
     * 服务名称
     */
    @Excel(name = "服务名称")
    @TableField(condition = SqlCondition.LIKE)
    private String serviceName;

    /**
     * 服务中文名称
     */
    @Excel(name = "服务中文名称")
    @TableField(condition = SqlCondition.LIKE)
    private String serviceChineseName;

    /**
     * 部署IP
     */
    @Excel(name = "部署IP")
    private String deployIp;

    /**
     * 心跳访问端口
     */
    @Excel(name = "心跳访问端口", type = 10)
    private Integer port;

    /**
     * 健康检查请求地址
     */
    @Excel(name = "健康检查请求地址")
    private String healthCheckUrl;

    /**
     * 启动服务脚本路径
     */
    @Excel(name = "启动服务脚本路径")
    private String startupScriptPath;

    /**
     * 停止服务脚本路径
     */
    @Excel(name = "停止服务脚本路径")
    private String stopScriptPath;

    /**
     * 服务日志路径
     */
    @Excel(name = "服务日志路径")
    private String logPath;

    /**
     * 预计启动时长 单位秒
     */
    @Excel(name = "预计启动时长(秒)")
    private Integer estimatedStartupTime;

    /**
     * 区域编号 0代表不区分区域 其他为自定义
     */
    @Excel(name = "区域编号")
    @TableField(fill = FieldFill.INSERT)
    private Integer regionCode;

    /**
     * 监控模式 1被动 2主动
     */
    @Excel(name = "监控模式", replace = {"被动_1", "主动_2"})
    private Integer monitorMode;

    /**
     * 是否自启 0 不自启 1 自启
     */
    @Excel(name = "是否自启", replace = {"不自启_0", "自启_1"})
    private Integer selfStart;

    /**
     * 监控状态 0 关闭 1 开启
     */
    @Excel(name = "监控状态", replace = {"关闭_0", "开启_1"})
    private Integer status;

    /**
     * 备注
     */
    @Excel(name = "备注")
    private String remark;

    /**
     * 创建时间
     */
    @Excel(name = "创建时间", format = "yyyy-MM-dd HH:mm:ss")
    @TableField(fill = FieldFill.INSERT)
    private Date createTime;

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public Integer getServiceCode() {
        return serviceCode;
    }

    public void setServiceCode(Integer serviceCode) {
        this.serviceCode = serviceCode;
    }

    public Integer getNodeCode() {
        return nodeCode;
    }

    public void setNodeCode(Integer nodeCode) {
        this.nodeCode = nodeCode;
    }

    public String getServiceName() {
        return serviceName;
    }

    public void setServiceName(String serviceName) {
        this.serviceName = serviceName;
    }

    public String getServiceChineseName() {
        return serviceChineseName;
    }

    public void setServiceChineseName(String serviceChineseName) {
        this.serviceChineseName = serviceChineseName;
    }

    public String getDeployIp() {
        return deployIp;
    }

    public void setDeployIp(String deployIp) {
        this.deployIp = deployIp;
    }

    public Integer getPort() {
        return port;
    }

    public void setPort(Integer port) {
        this.port = port;
    }

    public String getHealthCheckUrl() {
        return healthCheckUrl;
    }

    public void setHealthCheckUrl(String healthCheckUrl) {
        this.healthCheckUrl = healthCheckUrl;
    }

    public String getStartupScriptPath() {
        return startupScriptPath;
    }

    public void setStartupScriptPath(String startupScriptPath) {
        this.startupScriptPath = startupScriptPath;
    }

    public String getStopScriptPath() {
        return stopScriptPath;
    }

    public void setStopScriptPath(String stopScriptPath) {
        this.stopScriptPath = stopScriptPath;
    }

    public String getLogPath() {
        return logPath;
    }

    public void setLogPath(String logPath) {
        this.logPath = logPath;
    }

    public Integer getEstimatedStartupTime() {
        return estimatedStartupTime;
    }

    public void setEstimatedStartupTime(Integer estimatedStartupTime) {
        this.estimatedStartupTime = estimatedStartupTime;
    }

    public Integer getRegionCode() {
        return regionCode;
    }

    public void setRegionCode(Integer regionCode) {
        this.regionCode = regionCode;
    }

    public Integer getMonitorMode() {
        return monitorMode;
    }

    public void setMonitorMode(Integer monitorMode) {
        this.monitorMode = monitorMode;
    }

    public Integer getSelfStart() {
        return selfStart;
    }

    public void setSelfStart(Integer selfStart) {
        this.selfStart = selfStart;
    }

    public Integer getStatus() {
        return status;
    }

    public void setStatus(Integer status) {
        this.status = status;
    }

    public String getRemark() {
        return remark;
    }

    public void setRemark(String remark) {
        this.remark = remark;
    }

    public Date getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }
}